package vip.liux.contracts.security.core.extensions;


/**
 * 提供用于存储用户是否启用双因素认证标志的抽象接口。
 *
 * @param <TUser> 封装用户的类型。
 */
public interface IUserTwoFactorStore<TUser> extends IUserStore<TUser> {
    /**
     * 设置指定用户是否启用双因素认证。
     *
     * @param user    要设置的用户。
     * @param enabled 是否启用双因素认证。
     */
    void setTwoFactorEnabled(TUser user, boolean enabled);

    /**
     * 获取指定用户是否启用双因素认证。
     *
     * @param user 要查询的用户。
     * @return 如果启用返回 true，否则返回 false。
     */
    boolean getTwoFactorEnabled(TUser user);
}